
#ifndef GamePadTriggers_h
#define GamePadTriggers_h

#include <System/String.h>

namespace Riccsson
{
	namespace Xna
	{
		namespace Framework
		{
			namespace Input
			{
				// Summary:
				//     Structure that defines the position of the left and right triggers on an
				//     Xbox 360 Controller.
				struct GamePadTriggers : public Riccsson::System::object
				{
					PROP3GET(GamePadTriggers, float, Left);
					PROP3GET(GamePadTriggers, float, Right);
					
					COPY_CONSTRUCTOR(GamePadTriggers)
					{
						PROP3GET_INIT_COPY(GamePadTriggers, float, Left);
						PROP3GET_INIT_COPY(GamePadTriggers, float, Right);
					}

					public: GamePadTriggers()
						: PROP3GET_INIT(GamePadTriggers, Left)
						, PROP3GET_INIT(GamePadTriggers, Right)
					{
					}

					//
					// Summary:
					//     Initializes a new instance of the GamePadTriggers class.
					//
					// Parameters:
					//   leftTrigger:
					//     Left trigger value. This value is clamped between 0.0 and 1.0.
					//
					//   rightTrigger:
					//     Right trigger value. This value is clamped between 0.0 and 1.0.
					public: GamePadTriggers(float leftTrigger, float rightTrigger)
						: PROP3GET_INIT(GamePadTriggers, Left)
						, PROP3GET_INIT(GamePadTriggers, Right)
					{
						throw;
					}

					// Summary:
					//     Identifies the position of the left trigger on the Xbox 360 Controller.
					public: PROP3_GET(float, Left)
					{
						throw;
					}
					//
					// Summary:
					//     Identifies the position of the right trigger on the Xbox 360 Controller.
					public: PROP3_GET(float, Right)
					{
						throw;
					}

					// Summary:
					//     Returns a value that indicates whether the current instance is equal to a
					//     specified object.
					//
					// Parameters:
					//   obj:
					//     Object with which to make the comparison.
					public: override bool Equals(Riccsson::System::object* obj)
					{
						throw;
					}
					//
					// Summary:
					//     Gets the hash code for this instance.
					public: override int GetHashCode()
					{
						throw;
					}
					//
					// Summary:
					//     Retrieves a string representation of this object.
					public: override GC_PTR<Riccsson::System::string> ToString()
					{
						throw;
					}
				};
				
				// Summary:
				//     Determines whether two GamePadTriggers instances are not equal.
				//
				// Parameters:
				//   left:
				//     Object on the left of the equal sign.
				//
				//   right:
				//     Object on the right of the equal sign.
				static bool operator !=(GamePadTriggers left, GamePadTriggers right)
				{
					throw;
				}
				//
				// Summary:
				//     Determines whether two GamePadTriggers instances are equal.
				//
				// Parameters:
				//   left:
				//     Object on the left of the equal sign.
				//
				//   right:
				//     Object on the right of the equal sign.
				static bool operator ==(GamePadTriggers left, GamePadTriggers right)
				{
					throw;
				}
			}
		}
	}
}

#endif